package co.gov.medellin.ssti.sub.paoyer.common.exception;

/**
 * Representa una excepci�n que se genera exclusivamente por una acci�n de
 * usuario. Esta clase se crea cuando, por ejemplo, informaci�n de usuario es
 * pasada por par�metro hacia alg�n m�todo y esta informaci�n es erronea
 * en alguna forma. El llamado a un m�todo que realiza la comprobaci�n de un
 * usuario contra una base de datos levanta una excepci�n de este tipo si el
 * usuaio no es encontrado..
 * 
 * @version 0.9
 */
public class UserException extends BaseException {

	/**
	 * 
	 */
	private static final long serialVersionUID = 8392799102611918363L;
	/**
	 * Coleccion de objetos cuyo estado se debe serializar.
	 */
	private Object[] objectSet;

	/**
	 * Constructor basico de la clase, que inicializa el codigo del modulo y el
	 * codigo del mensaje.
	 * 
	 * @param moduleVO
	 * @param messageId
	 * @param objectSet
	 */
	public UserException(ModuleVO moduleVO, int messageId) {
		super(moduleVO, messageId);
	}

	public UserException(ModuleVO moduleVO, int messageId, String customMessage) {
		super(moduleVO, messageId, customMessage);
	}

	public UserException(ModuleVO moduleVO, int messageId, Object[] objectSet) {
		super(ModuleExceptionFactory
				.getModuleException(moduleVO.getExceptionClass())
				.getExceptionVO(messageId).toString());
		this.moduleVO = moduleVO;
		this.messageId = messageId;
		this.objectSet = objectSet;
	}

}